package com.campus.app.service;

import com.campus.app.mapper.Insert;
import com.campus.app.mapper.Update;
import com.campus.commons.entity.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.commons.utils.Result;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author Rin
 * @since 2020-12-24
 */
public interface MenusService extends IService<Menu> {
    /**
     * 根据角色Id 获取该角色对应的所有菜单；
     * 如果 id 1 则免查询，直接获取所有权限；
     */
    Result<List<Menu>> getMenusByRole(@Min(1) Integer roleId);


    /**
     * 获取所有菜单 过滤掉功能；
     * @return
     */
    Result<List<Menu>> getAllMenusFilter();

    /**
     * 获取所有权限
     * @return`
     */
    Result<List<Menu>> getAllMenus();
//    Result<List<Menu>>

    /**
     *
     * @param menu
     * @return
     */
    Result addMenu(@Validated(value = Insert.class) Menu menu);

    Result delMenu(@Min(1)@NotNull Integer id);

    Result upMenu(@Validated(value = Update.class) Menu menu);

}
